runs fine with 1000 rows (1260632 bytes)

## Linking to GEOS 3.11.0, GDAL 3.5.3, PROJ 9.1.0; sf_use_s2() is TRUE
## The legacy packages maptools, rgdal, and rgeos, underpinning the sp package,
## which was just loaded, will retire in October 2023.
## Please refer to R-spatial evolution reports for details, especially
## https://r-spatial.org/r/2023/05/15/evolution4.html.
## It may be desirable to make the sf package available;
## package maintainers should consider adding sf to Suggests:.
## The sp package is now running under evolution status 2
##      (status 2 uses the sf package in place of rgdal)
nc <- st_read(system.file("shape/nc.shp", package="sf"))
## Reading layer `nc' from data source 
##   `/Library/Frameworks/R.framework/Versions/4.3-arm64/Resources/library/sf/shape/nc.shp' 
##   using driver `ESRI Shapefile'
## Simple feature collection with 100 features and 14 fields
## Geometry type: MULTIPOLYGON
## Dimension:     XY
## Bounding box:  xmin: -84.32385 ymin: 33.88199 xmax: -75.45698 ymax: 36.58965
## Geodetic CRS:  NAD27
merged <- do.call(rbind, rep(list(nc), 10))

object.size(merged)
## 1260632 bytes
nrow(merged)
## [1] 1000
tmap::tmap_mode("view") +
   tm_shape(merged) +
   tm_fill(col="NAME", lwd = 0.2) 
## tmap mode set to interactive viewing
## Warning: Number of levels of the variable "NAME" is 100, which is larger than
## max.categories (which is 30), so levels are combined. Set
## tmap_options(max.categories = 100) in the layer function to show all levels.

no map with 7500 rows (9331032 bytes)

library(sf)
library(tmap)


nc <- st_read(system.file("shape/nc.shp", package="sf"))
## Reading layer `nc' from data source 
##   `/Library/Frameworks/R.framework/Versions/4.3-arm64/Resources/library/sf/shape/nc.shp' 
##   using driver `ESRI Shapefile'
## Simple feature collection with 100 features and 14 fields
## Geometry type: MULTIPOLYGON
## Dimension:     XY
## Bounding box:  xmin: -84.32385 ymin: 33.88199 xmax: -75.45698 ymax: 36.58965
## Geodetic CRS:  NAD27
merged <- do.call(rbind, rep(list(nc), 90))

object.size(merged)
## 11193432 bytes
nrow(merged)
## [1] 9000
tmp <- tmap::tmap_mode("view") +
   tm_shape(merged) +
   tm_fill(col="NAME", lwd = 0.2)
## tmap mode set to interactive viewing
tmp2 <- tmap_leaflet(tmp)
## Warning: Number of levels of the variable "NAME" is 100, which is larger than
## max.categories (which is 30), so levels are combined. Set
## tmap_options(max.categories = 100) in the layer function to show all levels.
## 14244816 bytes
class(tmp2)
## [1] "leaflet"    "htmlwidget"
tmp
## Warning: Number of levels of the variable "NAME" is 100, which is larger than
## max.categories (which is 30), so levels are combined. Set
## tmap_options(max.categories = 100) in the layer function to show all levels.